﻿using Abp.Application.Services;
using Abp.Domain.Entities;
using FwProject.PrePaymentInfo.Dto;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using X.PagedList;

namespace FwProject.PrePaymentInfo
{
    public interface IFinanceReportAppService : IApplicationService
    {
        Task<FinanceSummaryOutputDto> GetFinanceSummaryAsync(DateTime? beginTime, DateTime? endTime);

        Task<IPagedList<RunningAccountDto>> GetRunningAccountPagedListAsync(int pageIdx, int pageSize, DateTime? beginTime, DateTime? endTime, string RestaurantName);

        Task<List<RunningAccountDto>> GetRunningAccountListAsync(DateTime? beginTime, DateTime? endTime, string RestaurantName);

        Task<IPagedList<SettleAccountsKnowingOutputDto>> GetSettleAccountsKnowingDetailAsync(int pageIdx, int pageSize, DateTime? beginTime, DateTime? endTime, Guid? accountId);

        Task<List<SettleAccountsKnowingOutputDto>> GetSettleAccountsKnowingDetailListAsync(DateTime? beginTime, DateTime? endTime, Guid? accountId);

        Task<SummaryDailyIncomeAndExpensesDto> GetDailyIncomeAndExpensesAsync(int pageIdx, int pageSize, DateTime? beginTime, DateTime? endTime);

        Task<List<DailyIncomeAndExpensesDto>> GetDailyIncomeAndExpensesAllListAsync(DateTime? beginTime, DateTime? endTime);

        Task<ReceivableStatementOutputDto> GetReceivableStatementDataAsync(int pageIdx, int pageSize, DateTime? beginTime, DateTime? endTime, string restaurantIds);

        Task<List<ReceivableStatementDetailDto>> GetReceivableStatementListAsync(DateTime? beginTime, DateTime? endTime, string restaurantIds);


        Task<List<PendingTaskDto>> GetPendingTaskListAsync();
    }


}
